#pragma once

#include "IMxPluginBase.h"

class IMxPluginLibDetailsIID
{
	public:
		static const char *const GUID() {
			return "B9A71387-11BF-46C9-987D-67579D9E76AC";
		}

		static const char *const Name() {
			return "IMxPluginLibDetails";
		}
};

class IMxPluginLibDetails:  public IMxPluginBase
{
	public:		// Access
		virtual void InitInstance(void) = 0;

	public:		// Properties
		const char *MXSTDMETHOD GetLibName(void) {
			return _LibName;
		}
		const char *MXSTDMETHOD GetLibVersion(void) {
			return _LibVersion;
		}
		const char *MXSTDMETHOD GetLibOwnerName(void) {
			return _LibOwnerName;
		}
		const char *MXSTDMETHOD GetLibCopyrightNotice(void) {
			return _LibCopyrightNotice;
		}
		const char *MXSTDMETHOD GetLibDescription(void) {
			return _LibDescription;
		}
		const char *MXSTDMETHOD GetLibID(void) {
			return _LibID;
		}
		const char *MXSTDMETHOD GetLibSupportSite(void) {
			return _LibSupportSite;
		}
		const char *MXSTDMETHOD GetLibLicenseName(void) {
			return _LibLicenseName;
		}
		const char *MXSTDMETHOD GetLibLicenseURL(void) {
			return _LibLicenseURL;
		}
		const char *MXSTDMETHOD GetLibPathFilename(void) {
			return _LibPathFilename;
		}
		const char *MXSTDMETHOD GetSocketAppID(void) {
			return _SocketAppID;
		}

	protected:	// Properties
		const char *_LibName;
		const char *_LibVersion;
		const char *_LibOwnerName;
		const char *_LibCopyrightNotice;
		const char *_LibDescription;
		const char *_LibID;
		const char *_LibSupportSite;
		const char *_LibLicenseName;
		const char *_LibLicenseURL;
		const char *_LibPathFilename;
		const char *_SocketAppID;
};
